package com.mercury.ec.module.air.controller.admin.order.vo.orderprice;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Data
@Schema(description = "管理后台 - 机票订单价格退票申请 Request VO")
public class AirOrderPriceApplyReturnReqVO {

    @Schema(description = "原价格id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "原价格id不能为空")
    private Long originOrderPriceId;

//    @Schema(description = "行程序号", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "行程序号不能为空")
//    private Integer routeSerialNo;
//
//    @Schema(description = "乘客序号", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "乘客序号不能为空")
//    private Integer passengerSerialNo;
//
//    @Schema(description = "出票代码")
//    @Length(max = 8, message = "出票代码长度不能超过8")
//    private String airlineIssueNo;
//
//    @Schema(description = "票号")
//    @Length(max = 16, message = "票号长度不能超过16")
//    private String ticketNo;
//
//    @Schema(description = "终止票号")
//    @Length(max = 16, message = "终止票号长度不能超过16")
//    private String ticketLastNo;

//    @Schema(description = "打票机号")
//    @Length(max = 16, message = "打票机号长度不能超过16")
//    private String ticketVendingMachineNo;

    @Schema(description = "附加费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "附加费不能为空")
    private BigDecimal saleAdditionalFee;

    @Schema(description = "服务费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务费不能为空")
    private BigDecimal saleServiceFee;

//    @Schema(description = "升舱费", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "升舱费不能为空")
//    private BigDecimal saleUpgradeFee;
//
//    @Schema(description = "改期费", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "改期费不能为空")
//    private BigDecimal saleChangeFee;

    @Schema(description = "退票费率", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "退票费率不能为空")
    private BigDecimal saleReturnFeeRate;

    @Schema(description = "退票费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "退票费不能为空")
    private BigDecimal saleReturnFee;

//    @Schema(description = "票面价", requiredMode = Schema.RequiredMode.REQUIRED, example = "17704")
//    @NotNull(message = "票面价不能为空")
//    private BigDecimal saleTicketPrice;
//
//    @Schema(description = "销售价", requiredMode = Schema.RequiredMode.REQUIRED, example = "30919")
//    @NotNull(message = "销售价不能为空")
//    private BigDecimal salePrice;

    @Schema(description = "已用票面价", requiredMode = Schema.RequiredMode.REQUIRED, example = "8877")
    @NotNull(message = "已用票面价不能为空")
    private BigDecimal saleUsedPrice;

    @Schema(description = "已用机建税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "已用机建税不能为空")
    private BigDecimal saleUsedAirportTax;

    @Schema(description = "已用燃油税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "已用燃油税不能为空")
    private BigDecimal saleUsedOilTax;
//
//    @Schema(description = "销售税", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "销售税不能为空")
//    private BigDecimal saleTax;

    @Schema(description = "已用销售税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "已用销售税不能为空")
    private BigDecimal saleUsedTax;

    @Schema(description = "代理费率", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "代理费率不能为空")
    private BigDecimal saleAgencyFeeRate;

    @Schema(description = "代理费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "代理费不能为空")
    private BigDecimal saleAgencyFee;

    @Schema(description = "后返费率", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "后返费率不能为空")
    private BigDecimal saleBackRebateFeeRate;

    @Schema(description = "后返费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "后返费不能为空")
    private BigDecimal saleBackRebateFee;

    @Schema(description = "记奖价", requiredMode = Schema.RequiredMode.REQUIRED, example = "28158")
    @NotNull(message = "记奖价不能为空")
    private BigDecimal salePrizePrice;

    @Schema(description = "记奖税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "记奖税不能为空")
    private BigDecimal salePrizeTax;

    @Schema(description = "采购附加费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购附加费不能为空")
    private BigDecimal purchaseAdditionalFee;

    @Schema(description = "采购服务费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购服务费不能为空")
    private BigDecimal purchaseServiceFee;

//    @Schema(description = "采购升舱费", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "采购升舱费不能为空")
//    private BigDecimal purchaseUpgradeFee;
//
//    @Schema(description = "采购改期费", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "采购改期费不能为空")
//    private BigDecimal purchaseChangeFee;

    @Schema(description = "采购退票费率", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购退票费率不能为空")
    private BigDecimal purchaseReturnFeeRate;

    @Schema(description = "采购退票费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购退票费不能为空")
    private BigDecimal purchaseReturnFee;

//    @Schema(description = "采购票面价", requiredMode = Schema.RequiredMode.REQUIRED, example = "18086")
//    @NotNull(message = "采购票面价不能为空")
//    private BigDecimal purchaseTicketPrice;
//
//    @Schema(description = "采购价", requiredMode = Schema.RequiredMode.REQUIRED, example = "29611")
//    @NotNull(message = "采购价不能为空")
//    private BigDecimal purchasePrice;

    @Schema(description = "已用采购票面价", requiredMode = Schema.RequiredMode.REQUIRED, example = "32526")
    @NotNull(message = "已用采购票面价不能为空")
    private BigDecimal purchaseUsedPrice;

    @Schema(description = "已用采购机建税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "已用采购机建税不能为空")
    private BigDecimal purchaseUsedAirportTax;
    //
    @Schema(description = "已用采购燃油税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "已用采购燃油税不能为空")
    private BigDecimal purchaseUsedOilTax;
//
//    @Schema(description = "采购税", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "采购税不能为空")
//    private BigDecimal purchaseTax;

    @Schema(description = "已用采购税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "已用采购税不能为空")
    private BigDecimal purchaseUsedTax;

    @Schema(description = "采购代理费率", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购代理费率不能为空")
    private BigDecimal purchaseAgencyFeeRate;

    @Schema(description = "采购代理费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购代理费不能为空")
    private BigDecimal purchaseAgencyFee;

    @Schema(description = "采购后返费率", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购后返费率不能为空")
    private BigDecimal purchaseBackRebateFeeRate;

    @Schema(description = "采购后返费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购后返费不能为空")
    private BigDecimal purchaseBackRebateFee;

    @Schema(description = "采购记奖价", requiredMode = Schema.RequiredMode.REQUIRED, example = "8433")
    @NotNull(message = "采购记奖价不能为空")
    private BigDecimal purchasePrizePrice;

    @Schema(description = "采购记奖税", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购记奖税不能为空")
    private BigDecimal purchasePrizeTax;
}
